home *** CD-ROM | disk | FTP | other *** search
- ! $Id: x13f.f,v 1.2 1994/05/26 19:34:27 mjl Exp $
- ! $Log: x13f.f,v $
- ! Revision 1.2 1994/05/26 19:34:27 mjl
- ! Inserted missing CVS Id and Log fields for all Fortran demos. Comment
- ! character changed to "!" everywhere, to work well with font-lock in Lucid
- ! emacs (requires a small change to fortran-mode.el).
- !
- !
- ! Demonstration program for PLPLOT:
-
- parameter (PI=3.14156)
- real just, x(500), y(500), per(5)
- character*20 text(5)
- data text / "Maurice", "Randy", "Mark", "Steve", "Warner"/
-
- per(1) = 10.
- per(2) = 32.
- per(3) = 12.
- per(4) = 30.
- per(5) = 16.
-
- ! Ask user to specify the output device.
- ! Note that for this demo, neither the global aspect ratio flag nore
- ! the global orientation flag give the desired results, since plenv is told
- ! to do scaling based on physical dimensions.
- ! Thus we MUST print to a physical device and not globally mess with
- ! orientation or aspect ratio (this may be improved in the future).
-
- call plinit()
-
- call plenv(0.,10.,0.,10.,1,-2)
- call plcol(2)
-
- theta0 = 0.
- dthet = 2*PI/500
-
- do 1 i=1,5
- x(1) = 5.
- y(1) = 5.
- j = 1
- theta1 = theta0 + 2*PI*per(i)/100.
- if(i.eq.5) theta1 = 2*PI
- do 2 theta=theta0,theta1,dthet
- j = j + 1
- x(j) = 5 + 3*cos(theta)
- y(j) = 5 + 3*sin(theta)
- 2 continue
- call plcol(i)
- call plpsty(mod(i+3,8)+1)
- call plfill(j,x,y)
- call plcol(1)
- call plline(j,x,y)
- just = (theta0+theta1)/2.
- dx = .25*cos(just)
- dy = .25*sin(just)
- if(just .lt. PI/2 .or. just .gt. 3*PI/2) then
- just = 0.
- else
- just = 1.
- endif
- call plptex(x(j/2)+dx,y(j/2)+dy,1.,0.,just,text(i))
- theta0 = theta-dthet
- 1 continue
- call plfont(2)
- call plschr(0.,1.3)
- call plptex(5.,9.,1.,0.,.5,"Percentage of Sales")
-
- call plend
-
- end
-